package com.yeyaomai.dksns.flowis.servlet.dto;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.yeyaomai.dksns.flowis.domain.FlowAuth;

public class Auth {

	@SuppressWarnings("unchecked")
	public static boolean getAuth(int authId) {
		boolean boo = false;
		// 这里取保存在Session中的权限值是Map集合
		Map<Integer, String> map = new HashMap<Integer, String>(25);
		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
				.getRequestAttributes()).getRequest();
		HttpSession session = request.getSession();
		map = (Map<Integer, String>) session.getAttribute("authMap");
		if (null != map) {
			if (null != map.get(authId)) {
				boo = true;
			} else {
				boo = false;
			}
		}
		return boo;
	}
	
	public static String getHtml(List<FlowAuth> flowAuthList,Map<Long,String> map,Map<String,String> modelMap)
	{
		StringBuffer html1 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html2 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html3 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html4 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html5 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html6 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html7 = new StringBuffer("<ul><li class='role_title'>");
		StringBuffer html8 = new StringBuffer("<ul><li class='role_title'>");
		
			   if(null == modelMap.get("系统管理"))
				html1.append("<input name='modelName1' id='modelName1' type='checkbox' onclick=\"checkModel('modelName1','authName1');\"/>系统管理</li>");
			    else
				html1.append("<input name='modelName1' checked id='modelName1' type='checkbox' onclick=\"checkModel('modelName1','authName1');\"/>系统管理</li>");
				if(null == modelMap.get("在线情况"))
					html2.append("<input name='modelName2' type='checkbox' id='modelName2'  onclick=\"checkModel('modelName2','authName2');\"/>在线情况</li>");
				else
					html2.append("<input name='modelName2' checked type='checkbox' id='modelName2'  onclick=\"checkModel('modelName2','authName2');\"/>在线情况</li>");	
				if(null == modelMap.get("趋势分析"))
					html3.append("<input name='modelName3' type='checkbox' id='modelName3'  onclick=\"checkModel('modelName3','authName3');\"/>趋势分析</li>");
				else
					html3.append("<input name='modelName3'  checked type='checkbox' id='modelName3'  onclick=\"checkModel('modelName3','authName3');\"/>趋势分析</li>");	
				if(null == modelMap.get("来源分析"))
					html4.append("<input name='modelName4' type='checkbox' id='modelName4'  onclick=\"checkModel('modelName4','authName4');\"/>来源分析</li>");
				else
					html4.append("<input name='modelName4' checked type='checkbox' id='modelName4'  onclick=\"checkModel('modelName4','authName4');\"/>来源分析</li>");	
				if(null == modelMap.get("用户忠诚度分析"))
					html5.append("<input name='modelName5' type='checkbox' id='modelName5' onclick=\"checkModel('modelName5','authName5');\"/>用户忠诚度分析</li>");
				else
					html5.append("<input name='modelName5' checked type='checkbox' id='modelName5' onclick=\"checkModel('modelName5','authName5');\"/>用户忠诚度分析</li>");	
				if(null == modelMap.get("来路分析"))
					html6.append("<input name='modelName6' type='checkbox' id='modelName6' onclick=\"checkModel('modelName6','authName6');\"/>来路分析</li>");
				else
					html6.append("<input name='modelName6' checked type='checkbox' id='modelName6' onclick=\"checkModel('modelName6','authName6');\"/>来路分析</li>");	
				if(null == modelMap.get("受访分析"))
					html7.append("<input name='modelName7' type='checkbox' id='modelName7'  onclick=\"checkModel('modelName7','authName7');\"/>受访分析</li>");
				else
					html7.append("<input name='modelName7' checked type='checkbox' id='modelName7'  onclick=\"checkModel('modelName7','authName7');\"/>受访分析</li>");
				if(null == modelMap.get("信息采集"))
					html8.append("<input name='modelName8' type='checkbox' id='modelName8'  onclick=\"checkModel('modelName8','authName8');\"/>信息采集</li>");
				else
					html8.append("<input name='modelName8' checked type='checkbox' id='modelName8'  onclick=\"checkModel('modelName8','authName8');\"/>信息采集</li>");
		
		FlowAuth flowAuth = null;
		for(int i = 0;i<flowAuthList.size();i++)
		{
			flowAuth = flowAuthList.get(i);
			if(flowAuth.getModelName().equals("系统管理"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html1.append("<li><input name='authName1' id='authName1' type='checkbox' onclick=\"checkselect('modelName1','authName1');\"  value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html1.append("<li><input name='authName1' id='authName1' type='checkbox' checked onclick=\"checkselect('modelName1','authName1');\"  value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
			}
			if(flowAuth.getModelName().equals("在线情况"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html2.append("<li><input name='authName2' id='authName2' type='checkbox' onclick=\"checkselect('modelName2','authName2');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html2.append("<li><input name='authName2' id='authName2' type='checkbox' checked onclick=\"checkselect('modelName2','authName2');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			if(flowAuth.getModelName().equals("趋势分析"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html3.append("<li><input name='authName3' id='authName3' type='checkbox' onclick=\"checkselect('modelName3','authName3');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html3.append("<li><input name='authName3' id='authName3' type='checkbox' checked onclick=\"checkselect('modelName3','authName3');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			if(flowAuth.getModelName().equals("来源分析"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html4.append("<li><input name='authName4' id='authName4' type='checkbox' onclick=\"checkselect('modelName4','authName4');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html4.append("<li><input name='authName4' id='authName4' type='checkbox' checked onclick=\"checkselect('modelName4','authName4');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			if(flowAuth.getModelName().equals("用户忠诚度分析"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html5.append("<li><input name='authName5' id='authName5' type='checkbox' onclick=\"checkselect('modelName5','authName5');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html5.append("<li><input name='authName5' id='authName5' type='checkbox' checked onclick=\"checkselect('modelName5','authName5');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			if(flowAuth.getModelName().equals("来路分析"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html6.append("<li><input name='authName6' id='authName6' type='checkbox' onclick=\"checkselect('modelName6','authName6');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html6.append("<li><input name='authName6' id='authName6' type='checkbox' checked onclick=\"checkselect('modelName6','authName6');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			if(flowAuth.getModelName().equals("受访分析"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html7.append("<li><input name='authName7' id='authName7' type='checkbox' onclick=\"checkselect('modelName7','authName7');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html7.append("<li><input name='authName7' id='authName7' checked type='checkbox' onclick=\"checkselect('modelName7','authName7');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			if(flowAuth.getModelName().equals("信息采集"))
			{
				if(null == map.get(flowAuth.getAuthId()))
				{
					html8.append("<li><input name='authName8' id='authName8' type='checkbox' onclick=\"checkselect('modelName8','authName8');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				else{
					html8.append("<li><input name='authName8' id='authName8' checked type='checkbox' onclick=\"checkselect('modelName8','authName8');\" value='"+flowAuth.getAuthId()+"'/>"+flowAuth.getAuthName()+"</li>");
				}
				
			}
			
		}
		StringBuffer totalHtml = new StringBuffer();
		totalHtml.append(html1.append("</ul>")).append(html2.append("</ul>")).append(html3.append("</ul>")).append(html4.append("</ul>")).append(html5.append("</ul>"));
		totalHtml.append(html6.append("</ul>")).append(html7.append("</ul>").append(html8.append("</ul>")));
		//System.out.println(totalHtml.toString());
		return totalHtml.toString();
	}
}
